草庐IT

MySQL LIMIT 和 GROUP BY 与 JOIN

全部标签

mysql - SQL Join 2 tables 即使没有匹配的数据

我正在努力连接我的表的内容,我正在尝试连接两个表,同时仍然从表“电影”中获取结果,即使表“users_ratings”中没有匹配的记录。但它似乎不起作用我只得到一个结果。--电影表(100条记录)CREATETABLEIFNOTEXISTS`movies`(`ID`int(20)NOTNULL,`title_name`vachar(255)NOTNULL,`creation_date`datetimeNOTNULL)ENGINE=InnoDBDEFAULTCHARSET=latin1;--评分表(1条记录)CREATETABLEIFNOTEXISTS`users_ratings`(`I

mysql - 我可以将偏移量(跳过)与 GroupBy 一起使用吗?

下面是我的查询,我添加了一些我想要的描述。$recommendedByVideoId=RecommendedVideo::selectRaw('video_id,id')->orderBy('played_count','desc')->orderBy('updated_at','desc')->get()->skip(3)->take(2)->groupBy('video_id')下面是我的查询结果:[video_id_1]=>[record1,record2,record3,record4,record5],[video_id_2]=>[record1,record2,record

sql - 同一张表上有 2 个 LEFT JOIN 的 MySQL

我正在尝试运行此查询:SELECTDestaque.destaque,Noticia.id,Noticia.antetitulo,Noticia.titulo,Noticia.lead,Noticia.legenda,Noticia.publicacao,Seccao.descricao,Album.pasta,Foto.ficheiro,Foto.descricao,Cronista.nome,Cronista.profissao,Cronista.ficheiro,AudioFile.*,AudioCollection.*,VideoFile.*,VideoCollection.*

mysql - 简单JOIN时如何防止全表扫描?

我有两个表,TableA和TableB:CREATETABLE`TableA`(`shared_id`int(10)unsignedNOTNULLdefault'0',`foo`int(10)unsignedNOTNULL,PRIMARYKEY(`shared_id`))ENGINE=MyISAMDEFAULTCHARSET=latin1CREATETABLE`TableB`(`shared_id`int(10)unsignedNOTNULLauto_increment,`bar`int(10)unsignedNOTNULL,KEY`shared_id`(`shared_id`))EN

带有 INNER JOIN 的第二个表上的 MySQL LIMIT 1

我正在使用此查询来打印论坛板及其所有子论坛。正如预期的那样,会显示属于该论坛的所有线程中的所有帖子。我希望只显示每个主题的第一篇帖子以及论坛标题。查询:SELECTtf_threads.*,tf_posts.*FROMtf_threadsINNERJOINtf_postsONtf_threads.thread_id=tf_posts.thread_idANDtf_threads.parent_id=54ORDERBYtf_posts.dateASC请注意parent_id字段在实际查询中被赋予一个变量。所以。如果我说得通,谁能帮我写什么查询来只从每个线程中选择第一篇文章?如果没有简单(

mysql - 请帮助我进行表/嵌套 JOIN 优化 : Way too slow!

我的数据库中有大约250个表,每个表恰好有439340行。mysql>SHOWCREATETABLEdata.b50d1;+-------+--------------------------------------------------------------------------------------------CREATETABLE`b50d1`(`pTime`int(10)unsignedNOTNULL,`Slope`doubleNOTNULL,`STD`doubleNOTNULL,PRIMARYKEY(`pTime`),KEY`Slope`(`Slope`)USINGB

GROUP BY 和 JOIN 的 MySQL 性能

在花了很多时间处理这个问题的变体之后,我想知道是否有人可以帮助我优化这个查询或索引。我有三个临时表ref1、ref2、ref3都定义如下,其中ref1和ref2每个都有大约6000行,而ref3只有3行:CREATETEMPORARYTABLEref1(idINTNOTNULLAUTO_INCREMENT,valINT,PRIMARYKEY(id))ENGINE=MEMORY;慢查询是针对这样的表,大约有100万行:CREATETABLEt1(dDATETIMENOTNULL,id1INTNOTNULL,id2INTNOTNULL,id3INTNOTNULL,xINTNULL,PRIM

将 LEFT JOIN 与 OR 结合使用时,MySQL 查询会忽略索引?

我有这个问题:SELECTf.uid,fi.statusFROMfriendsfLEFTJOINfriends_invitationsfiONf.fid=fi.fidWHERE(f.uid=2ORfi.uid=2)上面的查询是正确的,但是在性能方面它扫描了friends表中的所有行,并忽略了WHERE子句中的f.uid索引,尽管fid和uid是两个表中的索引。基本上,我想要使用“uid”字段检索存在于“好友”或“好友邀请”表中的用户的最佳方法。有什么想法/建议吗? 最佳答案 怎么样:SELECTf.uid,fi.statusFROM

php - MySQL LEFT JOIN 多表逻辑问题

我有3个表:歌手、歌曲、专辑。它们都与singer_id相关联即使没有匹配的singer_id,我也需要获取所有这些。我设法通过这个查询获得了所有这些:SELECTsingers.singer_name,albums.album_name,songs.song_nameFROMsingersLEFTJOINalbumsONsingers.singer_id=albums.singer_idLEFTJOINsongsONalbums.singer_id=songs.singer_idWHEREsinger_id=?但问题是我无法正确显示结果。假设这位歌手有3张专辑和11首歌曲。这就是我显

mysql - 正确索引/优化 MySQL GROUP BY 和 JOIN 查询

我已经对此进行了大量阅读和谷歌搜索,但我找不到任何满意的答案,所以我很感激任何帮助。我找到的大多数答案都接近我的情况,但没有解决它(并且尝试遵循这些解决方案对我没有任何好处)。有关最佳示例,请参阅下面的编辑#2[这是最初的问题,但不能很好地代表我要问的问题。]假设我有2个表,每个表有4列:键(整数,自动递增)c1(约会对象)c2(长度为3的varchar)c3(也是长度为3的varchar)我想执行以下查询:SELECTt.c1,t.c2,COUNT(*)FROMtest1tLEFTJOINtest2t2ONt2.key=t.keyGROUPBYt.c1,t.c2两个key字段都被索引